const { src, dest, watch, series } = require("gulp");
const connect = require("gulp-connect");
const { createProxyMiddleware } = require('http-proxy-middleware');
const babel = require("gulp-babel");
const concat = require("gulp-concat");
const uglify = require("gulp-uglify");
const rename = require("gulp-rename");

function srcTest(){
    return src("./src/index.html")
    .pipe(dest("./www"))
    .pipe(connect.reload());
}
function watchTest(next){
    watch(["./src/index.html"], srcTest)
    next();
}
function serverTest(next){
    // 使用gulp的服务器插件，开启服务器，配置服务器
    connect.server({
        root:"www",
        port:3001,
        livereload:true,
        middleware: function(connect, opt) {
            return [
                // 使用gulp的服务器插件的代理中间件，进行跨域代理
                createProxyMiddleware('/wanandroid', {
                    target: 'https://www.wanandroid.com',   // 要请求的跨域的服务器
                    changeOrigin: true,     // 允许跨域
                    pathRewrite: {          // url的匹配规则
                        '^/wanandroid': '/'
                    }
                }),
            ]
        }
    })
    next();
}
exports.all = series(serverTest, watchTest);

// ES6转ES5，合并，存出来，压缩，改名（保留压缩之前和压缩之后的文件），存出来
function jsHandle(){
    // 找文件
    return src("./src/js/*.js")
    // ES6转ES5
    .pipe(babel({
        presets: ['@babel/env']
    }))
    // 合并
    .pipe(concat('all.js'))
    // 转存
    .pipe(dest("./www/js5"))
    // 压缩
    .pipe(uglify())
    // 改名
    .pipe(rename("all.min.js"))
    // 转存
    .pipe(dest("./www/js5"))
}
exports.jsh = jsHandle;





